
// 这就必须要保证ajax 函数返回.then() 方法的对象，需要将ajax 的函数使用Promise 要求进行改写
ajax = (method, url) => {
    return new Promise((resolve, reject) => {
        const request = new XMLHttpRequest()
        request.open(method, url)
        request.onreadystatechange = () => {
            if (request.readyState === 4) {
                // 成功就调用resolve，失败就调用reject
                if (request.status < 400) {
                    resolve.call(null, request.response)
                } else if (request.status >= 400) {
                    reject.call(null, request)
                }
            }
        }
        request.send()
    })
}


// 调用函数使用Promise 进行改写如下
ajax('get', '/xxx')
    .then((response) => { }, (status) => { }) // 第一个回调就是success 的回调，第二个就是fail 的回调